-
Notifications
You must be signed in to change notification settings - Fork 252
fix: Pyrefly should promote literals when inferring tuple types for attributes #1996
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Diff from mypy_primer, showing the effect of this PR on open source code: urllib3 (https://github.com/urllib3/urllib3)
+ ERROR src/urllib3/connection.py:811:33-53: Argument `bool | str | None` is not assignable to parameter `assert_hostname` with type `Literal[False] | str | None` in function `_ssl_wrap_socket_and_match_hostname` [bad-argument-type]
+ ERROR src/urllib3/connectionpool.py:1077:29-49: Argument `bool | str | None` is not assignable to parameter `assert_hostname` with type `Literal[False] | str | None` in function `urllib3._base_connection.BaseHTTPSConnection.__init__` [bad-argument-type]
+ ::error file=src/urllib3/connection.py,line=811,col=33,endLine=811,endColumn=53,title=Pyrefly bad-argument-type::Argument `bool | str | None` is not assignable to parameter `assert_hostname` with type `Literal[False] | str | None` in function `_ssl_wrap_socket_and_match_hostname`
+ ::error file=src/urllib3/connectionpool.py,line=1077,col=29,endLine=1077,endColumn=49,title=Pyrefly bad-argument-type::Argument `bool | str | None` is not assignable to parameter `assert_hostname` with type `Literal[False] | str | None` in function `urllib3._base_connection.BaseHTTPSConnection.__init__`
cibuildwheel (https://github.com/pypa/cibuildwheel)
+ ERROR cibuildwheel/options.py:681:78-91: Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `cibuildwheel.architecture.Architecture.parse_config` [bad-argument-type]
+ ERROR cibuildwheel/options.py:687:52-65: Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `cibuildwheel.architecture.Architecture.all_archs` [bad-argument-type]
+ ERROR cibuildwheel/options.py:938:22-35: Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `Options.__init__` [bad-argument-type]
+ ::error file=cibuildwheel/options.py,line=681,col=78,endLine=681,endColumn=91,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `cibuildwheel.architecture.Architecture.parse_config`
+ ::error file=cibuildwheel/options.py,line=687,col=52,endLine=687,endColumn=65,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `cibuildwheel.architecture.Architecture.all_archs`
+ ::error file=cibuildwheel/options.py,line=938,col=22,endLine=938,endColumn=35,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `platform` with type `Literal['android', 'ios', 'linux', 'macos', 'pyodide', 'windows']` in function `Options.__init__`
Tanjun (https://github.com/FasterSpeeding/Tanjun)
- ERROR tanjun/clients.py:1758:33-40: `MessageAcceptsEnum` is not assignable to attribute `_message_accepts` with type `Literal[MessageAcceptsEnum.ALL, MessageAcceptsEnum.NONE]` [bad-assignment]
- ::error file=tanjun/clients.py,line=1758,col=33,endLine=1758,endColumn=40,title=Pyrefly bad-assignment::`MessageAcceptsEnum` is not assignable to attribute `_message_accepts` with type `Literal[MessageAcceptsEnum.ALL, MessageAcceptsEnum.NONE]`
scikit-build-core (https://github.com/scikit-build/scikit-build-core)
+ ERROR src/scikit_build_core/hatch/plugin.py:167:39-171:22: No matching overload found for function `scikit_build_core.format.pyproject_format` called with arguments: (settings=ScikitBuildSettings, tags=WheelTag, state=str) [no-matching-overload]
+ ::error file=src/scikit_build_core/hatch/plugin.py,line=167,col=39,endLine=171,endColumn=22,title=Pyrefly no-matching-overload::No matching overload found for function `scikit_build_core.format.pyproject_format` called with arguments: (settings=ScikitBuildSettings, tags=WheelTag, state=str)%0A Possible overloads:%0A (*, settings: ScikitBuildSettings, state: Literal['editable', 'metadata_editable', 'metadata_wheel', 'sdist', 'wheel'] | None = ..., tags: WheelTag | None = ...) -> PyprojectFormatter [closest match]%0A (*, dummy: Literal[True]) -> dict[str, str]
dulwich (https://github.com/dulwich/dulwich)
- ERROR dulwich/archive.py:86:28-43: `tuple[int, int]` is not assignable to attribute `pos` with type `tuple[Literal[0], Literal[0]]` [bad-assignment]
- ERROR dulwich/archive.py:94:28-43: `tuple[int, Literal[0]]` is not assignable to attribute `pos` with type `tuple[Literal[0], Literal[0]]` [bad-assignment]
- ::error file=dulwich/archive.py,line=86,col=28,endLine=86,endColumn=43,title=Pyrefly bad-assignment::`tuple[int, int]` is not assignable to attribute `pos` with type `tuple[Literal[0], Literal[0]]`
- ::error file=dulwich/archive.py,line=94,col=28,endLine=94,endColumn=43,title=Pyrefly bad-assignment::`tuple[int, Literal[0]]` is not assignable to attribute `pos` with type `tuple[Literal[0], Literal[0]]`
dd-trace-py (https://github.com/DataDog/dd-trace-py)
- ERROR tests/testing/mocks.py:279:26-50: `tuple[str, int, str]` is not assignable to attribute `_location` with type `tuple[Literal['/fake/path.py'], Literal[10], Literal['test_name']]` [bad-assignment]
- ::error file=ddtrace/vendor/psutil/_common.py,line=320,col=9,endLine=320,endColumn=19,title=Pyrefly bad-override::Class member `ZombieProcess.__reduce__` overrides parent class `NoSuchProcess` in an inconsistent manner%0A `ZombieProcess.__reduce__` has type `BoundMethod[ZombieProcess, (self: ZombieProcess) -> tuple[type[ZombieProcess], tuple[Unknown, Unknown | None, Unknown | None, Literal['process no longer exists'] | Unknown]]]`, which is not assignable to `BoundMethod[ZombieProcess, (self: ZombieProcess) -> tuple[type[ZombieProcess], tuple[Unknown, Unknown | None, Literal['process no longer exists'] | Unknown]]]`, the type of `NoSuchProcess.__reduce__`
+ ::error file=ddtrace/vendor/psutil/_common.py,line=320,col=9,endLine=320,endColumn=19,title=Pyrefly bad-override::Class member `ZombieProcess.__reduce__` overrides parent class `NoSuchProcess` in an inconsistent manner%0A `ZombieProcess.__reduce__` has type `BoundMethod[ZombieProcess, (self: ZombieProcess) -> tuple[type[ZombieProcess], tuple[Unknown, Unknown | None, Unknown | None, str | Unknown]]]`, which is not assignable to `BoundMethod[ZombieProcess, (self: ZombieProcess) -> tuple[type[ZombieProcess], tuple[Unknown, Unknown | None, str | Unknown]]]`, the type of `NoSuchProcess.__reduce__`
- ::error file=tests/testing/mocks.py,line=279,col=26,endLine=279,endColumn=50,title=Pyrefly bad-assignment::`tuple[str, int, str]` is not assignable to attribute `_location` with type `tuple[Literal['/fake/path.py'], Literal[10], Literal['test_name']]`
PyGithub (https://github.com/PyGithub/PyGithub)
- ERROR github/Requester.py:1185:34-1189:14: `tuple[int, int]` is not assignable to attribute `rate_limiting` with type `tuple[Literal[-1], Literal[-1]]` [bad-assignment]
- ::error file=github/Requester.py,line=1185,col=34,endLine=1189,endColumn=14,title=Pyrefly bad-assignment::`tuple[int, int]` is not assignable to attribute `rate_limiting` with type `tuple[Literal[-1], Literal[-1]]`
pyodide (https://github.com/pyodide/pyodide)
+ ERROR src/py/pyodide/console.py:184:25-36: Argument `str` is not assignable to parameter `return_mode` with type `Literal['last_expr', 'last_expr_or_assign', 'none']` in function `_pyodide._base.CodeRunner.__init__` [bad-argument-type]
+ ::error file=src/py/pyodide/console.py,line=184,col=25,endLine=184,endColumn=36,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `return_mode` with type `Literal['last_expr', 'last_expr_or_assign', 'none']` in function `_pyodide._base.CodeRunner.__init__`
pandera (https://github.com/pandera-dev/pandera)
+ ERROR pandera/backends/ibis/container.py:412:47-71: Argument `str` is not assignable to parameter `unique` with type `Literal['all', 'exclude_first', 'exclude_last']` in function `pandera.backends.utils.convert_uniquesettings` [bad-argument-type]
+ ::error file=pandera/backends/ibis/container.py,line=412,col=47,endLine=412,endColumn=71,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `unique` with type `Literal['all', 'exclude_first', 'exclude_last']` in function `pandera.backends.utils.convert_uniquesettings`
apprise (https://github.com/caronc/apprise)
- ERROR apprise/plugins/custom_form.py:226:21-35: `str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString` [bad-assignment]
- ERROR apprise/plugins/custom_form.py:228:17-31: `str` is not assignable to attribute `attach_as` with type `LiteralString` [bad-assignment]
- ERROR apprise/plugins/custom_form.py:230:17-31: `str` is not assignable to attribute `attach_as` with type `LiteralString` [bad-assignment]
- ERROR apprise/plugins/custom_form.py:233:17-31: `str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString` [bad-assignment]
- ERROR apprise/plugins/custom_form.py:235:21-35: `str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString` [bad-assignment]
- ERROR apprise/plugins/pushover.py:297:28-30: `list[@_]` is not assignable to attribute `targets` with type `tuple[Literal['ALL_DEVICES']]` [bad-assignment]
+ ERROR apprise/plugins/pushover.py:297:28-30: `list[@_]` is not assignable to attribute `targets` with type `tuple[str]` [bad-assignment]
- ERROR apprise/plugins/resend.py:372:32-46: Argument `tuple[Literal[False] | str | Unknown, str | Any]` is not assignable to parameter `pair` with type `tuple[str | None, str]` in function `email.utils.formataddr` [bad-argument-type]
+ ERROR apprise/plugins/resend.py:372:32-46: Argument `tuple[bool | str | Unknown, str | Any]` is not assignable to parameter `pair` with type `tuple[str | None, str]` in function `email.utils.formataddr` [bad-argument-type]
- ::error file=apprise/plugins/custom_form.py,line=226,col=21,endLine=226,endColumn=35,title=Pyrefly bad-assignment::`str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString`
- ::error file=apprise/plugins/custom_form.py,line=228,col=17,endLine=228,endColumn=31,title=Pyrefly bad-assignment::`str` is not assignable to attribute `attach_as` with type `LiteralString`
- ::error file=apprise/plugins/custom_form.py,line=230,col=17,endLine=230,endColumn=31,title=Pyrefly bad-assignment::`str` is not assignable to attribute `attach_as` with type `LiteralString`
- ::error file=apprise/plugins/custom_form.py,line=233,col=17,endLine=233,endColumn=31,title=Pyrefly bad-assignment::`str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString`
- ::error file=apprise/plugins/custom_form.py,line=235,col=21,endLine=235,endColumn=35,title=Pyrefly bad-assignment::`str | Unknown` is not assignable to attribute `attach_as` with type `LiteralString`
- ::error file=apprise/plugins/pushover.py,line=297,col=28,endLine=297,endColumn=30,title=Pyrefly bad-assignment::`list[@_]` is not assignable to attribute `targets` with type `tuple[Literal['ALL_DEVICES']]`
+ ::error file=apprise/plugins/pushover.py,line=297,col=28,endLine=297,endColumn=30,title=Pyrefly bad-assignment::`list[@_]` is not assignable to attribute `targets` with type `tuple[str]`
- ::error file=apprise/plugins/resend.py,line=372,col=32,endLine=372,endColumn=46,title=Pyrefly bad-argument-type::Argument `tuple[Literal[False] | str | Unknown, str | Any]` is not assignable to parameter `pair` with type `tuple[str | None, str]` in function `email.utils.formataddr`
+ ::error file=apprise/plugins/resend.py,line=372,col=32,endLine=372,endColumn=46,title=Pyrefly bad-argument-type::Argument `tuple[bool | str | Unknown, str | Any]` is not assignable to parameter `pair` with type `tuple[str | None, str]` in function `email.utils.formataddr`
check-jsonschema (https://github.com/python-jsonschema/check-jsonschema)
+ ERROR src/check_jsonschema/checker.py:49:49-69: Argument `str` is not assignable to parameter `mode` with type `Literal['full', 'minimal', 'short']` in function `check_jsonschema.format_errors.print_error` [bad-argument-type]
+ ::error file=src/check_jsonschema/checker.py,line=49,col=49,endLine=49,endColumn=69,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `mode` with type `Literal['full', 'minimal', 'short']` in function `check_jsonschema.format_errors.print_error`
rotki (https://github.com/rotki/rotki)
+ ERROR rotkehlchen/api/v1/fields.py:508:25-33: `list[SUPPORTED_CHAIN_IDS] | None` is not assignable to attribute `limit_to` with type `list[ChainID] | None` [bad-assignment]
+ ERROR rotkehlchen/chain/bitcoin/manager.py:67:82-70:14: No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.get_single_blockchain_addresses` called with arguments: (cursor=DBCursor, blockchain=SupportedBlockchain) [no-matching-overload]
+ ERROR rotkehlchen/chain/bitcoin/manager.py:208:63-212:18: No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.get_dynamic_cache` called with arguments: (cursor=DBCursor, name=DBCacheDynamic, address=BTCAddress) [no-matching-overload]
+ ERROR rotkehlchen/chain/bitcoin/manager.py:248:48-253:18: No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.set_dynamic_cache` called with arguments: (write_cursor=DBCursor, name=DBCacheDynamic, value=int, address=BTCAddress) [no-matching-overload]
+ ERROR rotkehlchen/chain/evm/decoding/velodrome/decoder.py:480:27-55: Argument `list[CacheType]` is not assignable to parameter `key_parts` with type `Iterable[Literal[CacheType.AERODROME_GAUGE_ADDRESS, CacheType.AERODROME_GAUGE_BRIBE_ADDRESS, CacheType.AERODROME_GAUGE_FEE_ADDRESS, CacheType.AERODROME_POOL_ADDRESS, CacheType.BALANCER_V1_GAUGES, CacheType.BALANCER_V1_POOLS, CacheType.BALANCER_V2_GAUGES, CacheType.BALANCER_V2_POOLS, CacheType.BALANCER_V3_GAUGES, CacheType.BALANCER_V3_POOLS, CacheType.CONVEX_POOL_ADDRESS, CacheType.CURVE_CRVUSD_CONTROLLERS, CacheType.CURVE_LP_TOKENS, CacheType.CURVE_POOL_TOKENS, CacheType.EXTRAFI_REWARD_CONTRACTS, CacheType.GEARBOX_POOL_ADDRESS, CacheType.GEARBOX_POOL_LP_TOKENS, CacheType.MORPHO_REWARD_DISTRIBUTORS, CacheType.PENDLE_POOLS, CacheType.PENDLE_SY_TOKENS, CacheType.SPAM_ASSET_FALSE_POSITIVE, CacheType.STAKEDAO_GAUGES, CacheType.SUPERFLUID_SUPER_TOKENS, CacheType.VELODROME_GAUGE_ADDRESS, CacheType.VELODROME_GAUGE_BRIBE_ADDRESS, CacheType.VELODROME_GAUGE_FEE_ADDRESS, CacheType.VELODROME_POOL_ADDRESS] | str]` in function `rotkehlchen.globaldb.cache.globaldb_get_general_cache_values` [bad-argument-type]
+ ERROR rotkehlchen/chain/evm/decoding/velodrome/decoder.py:486:27-57: Argument `list[CacheType]` is not assignable to parameter `key_parts` with type `Iterable[Literal[CacheType.AERODROME_GAUGE_ADDRESS, CacheType.AERODROME_GAUGE_BRIBE_ADDRESS, CacheType.AERODROME_GAUGE_FEE_ADDRESS, CacheType.AERODROME_POOL_ADDRESS, CacheType.BALANCER_V1_GAUGES, CacheType.BALANCER_V1_POOLS, CacheType.BALANCER_V2_GAUGES, CacheType.BALANCER_V2_POOLS, CacheType.BALANCER_V3_GAUGES, CacheType.BALANCER_V3_POOLS, CacheType.CONVEX_POOL_ADDRESS, CacheType.CURVE_CRVUSD_CONTROLLERS, CacheType.CURVE_LP_TOKENS, CacheType.CURVE_POOL_TOKENS, CacheType.EXTRAFI_REWARD_CONTRACTS, CacheType.GEARBOX_POOL_ADDRESS, CacheType.GEARBOX_POOL_LP_TOKENS, CacheType.MORPHO_REWARD_DISTRIBUTORS, CacheType.PENDLE_POOLS, CacheType.PENDLE_SY_TOKENS, CacheType.SPAM_ASSET_FALSE_POSITIVE, CacheType.STAKEDAO_GAUGES, CacheType.SUPERFLUID_SUPER_TOKENS, CacheType.VELODROME_GAUGE_ADDRESS, CacheType.VELODROME_GAUGE_BRIBE_ADDRESS, CacheType.VELODROME_GAUGE_FEE_ADDRESS, CacheType.VELODROME_POOL_ADDRESS] | str]` in function `rotkehlchen.globaldb.cache.globaldb_get_general_cache_values` [bad-argument-type]
+ ::error file=rotkehlchen/api/v1/fields.py,line=508,col=25,endLine=508,endColumn=33,title=Pyrefly bad-assignment::`list[SUPPORTED_CHAIN_IDS] | None` is not assignable to attribute `limit_to` with type `list[ChainID] | None`
+ ::error file=rotkehlchen/chain/bitcoin/manager.py,line=67,col=82,endLine=70,endColumn=14,title=Pyrefly no-matching-overload::No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.get_single_blockchain_addresses` called with arguments: (cursor=DBCursor, blockchain=SupportedBlockchain)%0A Possible overloads:%0A (cursor: DBCursor, blockchain: SUPPORTED_EVM_EVMLIKE_CHAINS_TYPE) -> list[ChecksumAddress] [closest match]%0A (cursor: DBCursor, blockchain: SUPPORTED_BITCOIN_CHAINS_TYPE) -> list[BTCAddress]%0A (cursor: DBCursor, blockchain: SUPPORTED_SUBSTRATE_CHAINS_TYPE) -> list[SubstrateAddress]%0A (cursor: DBCursor, blockchain: Literal[SupportedBlockchain.SOLANA]) -> list[SolanaAddress]
+ ::error file=rotkehlchen/chain/bitcoin/manager.py,line=208,col=63,endLine=212,endColumn=18,title=Pyrefly no-matching-overload::No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.get_dynamic_cache` called with arguments: (cursor=DBCursor, name=DBCacheDynamic, address=BTCAddress)%0A Possible overloads:%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_CRYPTOTX_OFFSET], **kwargs: Unpack[LabeledLocationArgsType]) -> int | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.BINANCE_PAIR_LAST_ID], **kwargs: Unpack[BinancePairLastTradeArgsType]) -> int | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_QUERY_TS], **kwargs: Unpack[LabeledLocationIdArgsType]) -> Timestamp | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_QUERY_ID], **kwargs: Unpack[LabeledLocationIdArgsType]) -> str | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_BLOCK_ID], **kwargs: Unpack[LabeledLocationIdArgsType]) -> int | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.SOLANA_TOKEN_ACCOUNT], **kwargs: Unpack[AddressArgType]) -> tuple[SolanaAddress, SolanaAddress] | None [closest match]%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.WITHDRAWALS_TS], **kwargs: Unpack[AddressArgType]) -> Timestamp | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.WITHDRAWALS_IDX], **kwargs: Unpack[AddressArgType]) -> int | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.EXTRA_INTERNAL_TX], **kwargs: Unpack[ExtraTxArgType]) -> ChecksumAddress | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_PRODUCED_BLOCKS_QUERY_TS], **kwargs: Unpack[IndexArgType]) -> Timestamp | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_BCH_TX_BLOCK, DBCacheDynamic.LAST_BTC_TX_BLOCK], **kwargs: Unpack[AddressArgType]) -> int | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.LINEA_AIRDROP_ALLOCATION], **kwargs: Unpack[AddressArgType]) -> str | None%0A (cursor: DBCursor, name: Literal[DBCacheDynamic.MATCHED_ASSET_MOVEMENT], **kwargs: Unpack[IdentifierArgType]) -> int | None
+ ::error file=rotkehlchen/chain/bitcoin/manager.py,line=248,col=48,endLine=253,endColumn=18,title=Pyrefly no-matching-overload::No matching overload found for function `rotkehlchen.db.dbhandler.DBHandler.set_dynamic_cache` called with arguments: (write_cursor=DBCursor, name=DBCacheDynamic, value=int, address=BTCAddress)%0A Possible overloads:%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_CRYPTOTX_OFFSET], value: int, **kwargs: Unpack[LabeledLocationArgsType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.BINANCE_PAIR_LAST_ID], value: int, **kwargs: Unpack[BinancePairLastTradeArgsType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_QUERY_TS], value: Timestamp, **kwargs: Unpack[LabeledLocationIdArgsType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_QUERY_ID], value: int, **kwargs: Unpack[LabeledLocationIdArgsType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_BLOCK_ID], value: int, **kwargs: Unpack[LabeledLocationIdArgsType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.WITHDRAWALS_TS], value: Timestamp, **kwargs: Unpack[AddressArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.WITHDRAWALS_IDX], value: int, **kwargs: Unpack[AddressArgType]) -> None [closest match]%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.EXTRA_INTERNAL_TX], value: ChecksumAddress, **kwargs: Unpack[ExtraTxArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_PRODUCED_BLOCKS_QUERY_TS], value: Timestamp, **kwargs: Unpack[IndexArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LAST_BCH_TX_BLOCK, DBCacheDynamic.LAST_BTC_TX_BLOCK], value: int, **kwargs: Unpack[AddressArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.LINEA_AIRDROP_ALLOCATION], value: str, **kwargs: Unpack[AddressArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.SOLANA_TOKEN_ACCOUNT], value: str, **kwargs: Unpack[AddressArgType]) -> None%0A (write_cursor: DBCursor, name: Literal[DBCacheDynamic.MATCHED_ASSET_MOVEMENT], value: int, **kwargs: Unpack[IdentifierArgType]) -> None
+ ::error file=rotkehlchen/chain/evm/decoding/velodrome/decoder.py,line=480,col=27,endLine=480,endColumn=55,title=Pyrefly bad-argument-type::Argument `list[CacheType]` is not assignable to parameter `key_parts` with type `Iterable[Literal[CacheType.AERODROME_GAUGE_ADDRESS, CacheType.AERODROME_GAUGE_BRIBE_ADDRESS, CacheType.AERODROME_GAUGE_FEE_ADDRESS, CacheType.AERODROME_POOL_ADDRESS, CacheType.BALANCER_V1_GAUGES, CacheType.BALANCER_V1_POOLS, CacheType.BALANCER_V2_GAUGES, CacheType.BALANCER_V2_POOLS, CacheType.BALANCER_V3_GAUGES, CacheType.BALANCER_V3_POOLS, CacheType.CONVEX_POOL_ADDRESS, CacheType.CURVE_CRVUSD_CONTROLLERS, CacheType.CURVE_LP_TOKENS, CacheType.CURVE_POOL_TOKENS, CacheType.EXTRAFI_REWARD_CONTRACTS, CacheType.GEARBOX_POOL_ADDRESS, CacheType.GEARBOX_POOL_LP_TOKENS, CacheType.MORPHO_REWARD_DISTRIBUTORS, CacheType.PENDLE_POOLS, CacheType.PENDLE_SY_TOKENS, CacheType.SPAM_ASSET_FALSE_POSITIVE, CacheType.STAKEDAO_GAUGES, CacheType.SUPERFLUID_SUPER_TOKENS, CacheType.VELODROME_GAUGE_ADDRESS, CacheType.VELODROME_GAUGE_BRIBE_ADDRESS, CacheType.VELODROME_GAUGE_FEE_ADDRESS, CacheType.VELODROME_POOL_ADDRESS] | str]` in function `rotkehlchen.globaldb.cache.globaldb_get_general_cache_values`
+ ::error file=rotkehlchen/chain/evm/decoding/velodrome/decoder.py,line=486,col=27,endLine=486,endColumn=57,title=Pyrefly bad-argument-type::Argument `list[CacheType]` is not assignable to parameter `key_parts` with type `Iterable[Literal[CacheType.AERODROME_GAUGE_ADDRESS, CacheType.AERODROME_GAUGE_BRIBE_ADDRESS, CacheType.AERODROME_GAUGE_FEE_ADDRESS, CacheType.AERODROME_POOL_ADDRESS, CacheType.BALANCER_V1_GAUGES, CacheType.BALANCER_V1_POOLS, CacheType.BALANCER_V2_GAUGES, CacheType.BALANCER_V2_POOLS, CacheType.BALANCER_V3_GAUGES, CacheType.BALANCER_V3_POOLS, CacheType.CONVEX_POOL_ADDRESS, CacheType.CURVE_CRVUSD_CONTROLLERS, CacheType.CURVE_LP_TOKENS, CacheType.CURVE_POOL_TOKENS, CacheType.EXTRAFI_REWARD_CONTRACTS, CacheType.GEARBOX_POOL_ADDRESS, CacheType.GEARBOX_POOL_LP_TOKENS, CacheType.MORPHO_REWARD_DISTRIBUTORS, CacheType.PENDLE_POOLS, CacheType.PENDLE_SY_TOKENS, CacheType.SPAM_ASSET_FALSE_POSITIVE, CacheType.STAKEDAO_GAUGES, CacheType.SUPERFLUID_SUPER_TOKENS, CacheType.VELODROME_GAUGE_ADDRESS, CacheType.VELODROME_GAUGE_BRIBE_ADDRESS, CacheType.VELODROME_GAUGE_FEE_ADDRESS, CacheType.VELODROME_POOL_ADDRESS] | str]` in function `rotkehlchen.globaldb.cache.globaldb_get_general_cache_values`
strawberry (https://github.com/strawberry-graphql/strawberry)
- ERROR strawberry/django/views.py:93:32-43: `Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None` is not assignable to attribute `graphql_ide` with type `Literal['graphiql'] | None` [bad-assignment]
- ::error file=strawberry/django/views.py,line=93,col=32,endLine=93,endColumn=43,title=Pyrefly bad-assignment::`Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None` is not assignable to attribute `graphql_ide` with type `Literal['graphiql'] | None`
- ::error file=strawberry/django/views.py,line=148,col=5,endLine=148,endColumn=16,title=Pyrefly bad-override::Class member `GraphQLView.graphql_ide` overrides parent class `BaseView` in an inconsistent manner%0A `GraphQLView.graphql_ide` has type `Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None`, which is not consistent with `Literal['graphiql'] | None` in `BaseView.graphql_ide` (the type of read-write attributes cannot be changed)
+ ::error file=strawberry/django/views.py,line=148,col=5,endLine=148,endColumn=16,title=Pyrefly bad-override::Class member `GraphQLView.graphql_ide` overrides parent class `BaseView` in an inconsistent manner%0A `GraphQLView.graphql_ide` has type `Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None`, which is not consistent with `str | None` in `BaseView.graphql_ide` (the type of read-write attributes cannot be changed)
- ::error file=strawberry/django/views.py,line=197,col=5,endLine=197,endColumn=16,title=Pyrefly bad-override::Class member `AsyncGraphQLView.graphql_ide` overrides parent class `BaseView` in an inconsistent manner%0A `AsyncGraphQLView.graphql_ide` has type `Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None`, which is not consistent with `Literal['graphiql'] | None` in `BaseView.graphql_ide` (the type of read-write attributes cannot be changed)
+ ::error file=strawberry/django/views.py,line=197,col=5,endLine=197,endColumn=16,title=Pyrefly bad-override::Class member `AsyncGraphQLView.graphql_ide` overrides parent class `BaseView` in an inconsistent manner%0A `AsyncGraphQLView.graphql_ide` has type `Literal['apollo-sandbox', 'graphiql', 'pathfinder'] | None`, which is not consistent with `str | None` in `BaseView.graphql_ide` (the type of read-write attributes cannot be changed)
pandas (https://github.com/pandas-dev/pandas)
+ ERROR pandas/core/apply.py:1481:5-11: Class member `SeriesApply.by_row` overrides parent class `NDFrameApply` in an inconsistent manner [bad-override]
+ ERROR pandas/core/dtypes/dtypes.py:839:16-26: Returned type `str` is not assignable to declared return type `Literal['ms', 'ns', 's', 'us']` [bad-return]
+ ERROR pandas/core/resample.py:2581:20-31: Argument `str` is not assignable to parameter `closed` with type `Literal['left', 'right']` in function `_get_timestamp_range_edges` [bad-argument-type]
+ ERROR pandas/core/resample.py:2697:31-61: No matching overload found for function `pandas.core.base.IndexOpsMixin.searchsorted` called with arguments: (TimedeltaIndex | Unknown, side=str) [no-matching-overload]
+ ERROR pandas/core/resample.py:2770:24-35: Argument `str` is not assignable to parameter `closed` with type `Literal['left', 'right']` in function `_get_period_range_edges` [bad-argument-type]
+ ERROR pandas/io/json/_json.py:908:38-915:14: No matching overload found for function `pandas.io.common.get_handle` called with arguments: (str, Literal['r'], encoding=Unknown, compression=dict[str, Any] | str | None, storage_options=dict[str, Any] | None, errors=str | None) [no-matching-overload]
+ ERROR pandas/io/json/_json.py:974:60-78: Argument `_NoDefault | str` is not assignable to parameter `dtype_backend` with type `Literal['numpy', 'numpy_nullable', 'pyarrow'] | _NoDefault` in function `pandas.io._util.arrow_table_to_pandas` [bad-argument-type]
+ ERROR pandas/io/json/_json.py:999:56-74: Argument `str` is not assignable to parameter `dtype_backend` with type `Literal['numpy_nullable', 'pyarrow']` in function `pandas.core.generic.NDFrame.convert_dtypes` [bad-argument-type]
+ ERROR pandas/io/json/_json.py:1077:56-74: Argument `str` is not assignable to parameter `dtype_backend` with type `Literal['numpy_nullable', 'pyarrow']` in function `pandas.core.generic.NDFrame.convert_dtypes` [bad-argument-type]
- ERROR pandas/io/pytables.py:2092:15-34: `<` is not supported between `Literal[0]` and `None` [unsupported-operation]
+ ERROR pandas/io/pytables.py:2092:15-34: `<` is not supported between `int` and `None` [unsupported-operation]
- ERROR pandas/io/pytables.py:2093:24-48: `+` is not supported between `Literal[0]` and `None` [unsupported-operation]
+ ERROR pandas/io/pytables.py:2093:24-48: `+` is not supported between `int` and `None` [unsupported-operation]
+ ERROR pandas/io/stata.py:1092:29-1098:10: No matching overload found for function `pandas.io.common.get_handle` called with arguments: (PathLike[str] | ReadBuffer[bytes] | str, Literal['rb'], storage_options=dict[str, Any] | None, is_text=Literal[False], compression=dict[str, Any] | str | None) [no-matching-overload]
+ ERROR pandas/io/stata.py:2879:24-2885:10: No matching overload found for function `pandas.io.common.get_handle` called with arguments: (PathLike[str] | WriteBuffer[bytes] | str, Literal['wb'], compression=dict[str, Any] | str | None, is_text=Literal[False], storage_options=dict[str, Any] | None) [no-matching-overload]
+ ::error file=pandas/core/apply.py,line=1481,col=5,endLine=1481,endColumn=11,title=Pyrefly bad-override::Class member `SeriesApply.by_row` overrides parent class `NDFrameApply` in an inconsistent manner%0A `SeriesApply.by_row` has type `Literal['_compat', 'compat', False]`, which is not consistent with `bool | str` in `NDFrameApply.by_row` (the type of read-write attributes cannot be changed)
+ ::error file=pandas/core/dtypes/dtypes.py,line=839,col=16,endLine=839,endColumn=26,title=Pyrefly bad-return::Returned type `str` is not assignable to declared return type `Literal['ms', 'ns', 's', 'us']`
- ::error file=pandas/core/resample.py,line=2297,col=9,endLine=2297,endColumn=29,title=Pyrefly bad-override::Class member `TimedeltaIndexResampler._get_binner_for_time` overrides parent class `DatetimeIndexResampler` in an inconsistent manner%0A `TimedeltaIndexResampler._get_binner_for_time` has type `BoundMethod[TimedeltaIndexResampler, (self: TimedeltaIndexResampler) -> tuple[TimedeltaIndex, list[Unknown], TimedeltaIndex] | tuple[TimedeltaIndex, ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]], TimedeltaIndex | Unknown]]`, which is not assignable to `BoundMethod[TimedeltaIndexResampler, (self: TimedeltaIndexResampler) -> tuple[DatetimeIndex | Index, ndarray[tuple[Any, ...], dtype[Any]], DatetimeIndex | ndarray[tuple[Any, ...], dtype[Any]] | Unknown] | tuple[DatetimeIndex, list[Unknown], DatetimeIndex]]`, the type of `DatetimeIndexResampler._get_binner_for_time`
+ ::error file=pandas/core/resample.py,line=2297,col=9,endLine=2297,endColumn=29,title=Pyrefly bad-override::Class member `TimedeltaIndexResampler._get_binner_for_time` overrides parent class `DatetimeIndexResampler` in an inconsistent manner%0A `TimedeltaIndexResampler._get_binner_for_time` has type `BoundMethod[TimedeltaIndexResampler, (self: TimedeltaIndexResampler) -> tuple[TimedeltaIndex, list[Unknown], TimedeltaIndex] | tuple[TimedeltaIndex, Unknown, TimedeltaIndex | Unknown]]`, which is not assignable to `BoundMethod[TimedeltaIndexResampler, (self: TimedeltaIndexResampler) -> tuple[DatetimeIndex | Index, ndarray[tuple[Any, ...], dtype[Any]], DatetimeIndex | ndarray[tuple[Any, ...], dtype[Any]] | Unknown] | tuple[DatetimeIndex, list[Unknown], DatetimeIndex]]`, the type of `DatetimeIndexResampler._get_binner_for_time`
+ ::error file=pandas/core/resample.py,line=2581,col=20,endLine=2581,endColumn=31,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `closed` with type `Literal['left', 'right']` in function `_get_timestamp_range_edges`
+ ::error file=pandas/core/resample.py,line=2697,col=31,endLine=2697,endColumn=61,title=Pyrefly no-matching-overload::No matching overload found for function `pandas.core.base.IndexOpsMixin.searchsorted` called with arguments: (TimedeltaIndex | Unknown, side=str)%0A Possible overloads:%0A (value: ScalarLike_co, side: Literal['left', 'right'] = ..., sorter: NumpySorter = ...) -> signedinteger[_NBitIntP]%0A (value: Buffer | ExtensionArray | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]] | bytes | complex | str, side: Literal['left', 'right'] = ..., sorter: NumpySorter = ...) -> ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] [closest match]
+ ::error file=pandas/core/resample.py,line=2770,col=24,endLine=2770,endColumn=35,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `closed` with type `Literal['left', 'right']` in function `_get_period_range_edges`
+ ::error file=pandas/io/json/_json.py,line=908,col=38,endLine=915,endColumn=14,title=Pyrefly no-matching-overload::No matching overload found for function `pandas.io.common.get_handle` called with arguments: (str, Literal['r'], encoding=Unknown, compression=dict[str, Any] | str | None, storage_options=dict[str, Any] | None, errors=str | None)%0A Possible overloads:%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[False], errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[True] = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[str] [closest match]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: bool = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes] | IOHandles[str]
+ ::error file=pandas/io/json/_json.py,line=974,col=60,endLine=974,endColumn=78,title=Pyrefly bad-argument-type::Argument `_NoDefault | str` is not assignable to parameter `dtype_backend` with type `Literal['numpy', 'numpy_nullable', 'pyarrow'] | _NoDefault` in function `pandas.io._util.arrow_table_to_pandas`
+ ::error file=pandas/io/json/_json.py,line=999,col=56,endLine=999,endColumn=74,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `dtype_backend` with type `Literal['numpy_nullable', 'pyarrow']` in function `pandas.core.generic.NDFrame.convert_dtypes`
+ ::error file=pandas/io/json/_json.py,line=1077,col=56,endLine=1077,endColumn=74,title=Pyrefly bad-argument-type::Argument `str` is not assignable to parameter `dtype_backend` with type `Literal['numpy_nullable', 'pyarrow']` in function `pandas.core.generic.NDFrame.convert_dtypes`
- ::error file=pandas/io/pytables.py,line=2092,col=15,endLine=2092,endColumn=34,title=Pyrefly unsupported-operation::`<` is not supported between `Literal[0]` and `None`%0A Argument `None` is not assignable to parameter `value` with type `int` in function `int.__lt__`
+ ::error file=pandas/io/pytables.py,line=2092,col=15,endLine=2092,endColumn=34,title=Pyrefly unsupported-operation::`<` is not supported between `int` and `None`%0A Argument `None` is not assignable to parameter `value` with type `int` in function `int.__lt__`
- ::error file=pandas/io/pytables.py,line=2093,col=24,endLine=2093,endColumn=48,title=Pyrefly unsupported-operation::`+` is not supported between `Literal[0]` and `None`%0A Argument `None` is not assignable to parameter `value` with type `int` in function `int.__add__`
+ ::error file=pandas/io/pytables.py,line=2093,col=24,endLine=2093,endColumn=48,title=Pyrefly unsupported-operation::`+` is not supported between `int` and `None`%0A Argument `None` is not assignable to parameter `value` with type `int` in function `int.__add__`
+ ::error file=pandas/io/stata.py,line=1092,col=29,endLine=1098,endColumn=10,title=Pyrefly no-matching-overload::No matching overload found for function `pandas.io.common.get_handle` called with arguments: (PathLike[str] | ReadBuffer[bytes] | str, Literal['rb'], storage_options=dict[str, Any] | None, is_text=Literal[False], compression=dict[str, Any] | str | None)%0A Possible overloads:%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[False], errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes] [closest match]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[True] = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[str]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: bool = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes] | IOHandles[str]
+ ::error file=pandas/io/stata.py,line=2879,col=24,endLine=2885,endColumn=10,title=Pyrefly no-matching-overload::No matching overload found for function `pandas.io.common.get_handle` called with arguments: (PathLike[str] | WriteBuffer[bytes] | str, Literal['wb'], compression=dict[str, Any] | str | None, is_text=Literal[False], storage_options=dict[str, Any] | None)%0A Possible overloads:%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[False], errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes] [closest match]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: Literal[True] = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[str]%0A (path_or_buf: BaseBuffer | PathLike[str] | str, mode: str, *, encoding: str | None = ..., compression: CompressionOptions = ..., memory_map: bool = ..., is_text: bool = ..., errors: str | None = ..., storage_options: StorageOptions = ...) -> IOHandles[bytes] | IOHandles[str]
nox (https://github.com/wntrblm/nox)
+ ERROR nox/_decorators.py:171:29-49: Argument `str | None` is not assignable to parameter `download_python` with type `Literal['always', 'auto', 'never'] | None` in function `Func.__init__` [bad-argument-type]
+ ERROR nox/sessions.py:1035:29-44: Argument `str | Any` is not assignable to parameter `download_python` with type `Literal['always', 'auto', 'never']` in function `nox.virtualenv.get_virtualenv` [bad-argument-type]
+ ::error file=nox/_decorators.py,line=171,col=29,endLine=171,endColumn=49,title=Pyrefly bad-argument-type::Argument `str | None` is not assignable to parameter `download_python` with type `Literal['always', 'auto', 'never'] | None` in function `Func.__init__`
+ ::error file=nox/sessions.py,line=1035,col=29,endLine=1035,endColumn=44,title=Pyrefly bad-argument-type::Argument `str | Any` is not assignable to parameter `download_python` with type `Literal['always', 'auto', 'never']` in function `nox.virtualenv.get_virtualenv`
vision (https://github.com/pytorch/vision)
- ERROR torchvision/transforms/transforms.py:813:83-87: Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.perspective` [bad-argument-type]
+ ERROR torchvision/transforms/transforms.py:813:83-87: Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.perspective` [bad-argument-type]
- ERROR torchvision/transforms/transforms.py:1380:83-87: Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.rotate` [bad-argument-type]
+ ERROR torchvision/transforms/transforms.py:1380:83-87: Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.rotate` [bad-argument-type]
- ERROR torchvision/transforms/transforms.py:1537:75-79: Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.affine` [bad-argument-type]
+ ERROR torchvision/transforms/transforms.py:1537:75-79: Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.affine` [bad-argument-type]
- ::error file=torchvision/transforms/transforms.py,line=813,col=83,endLine=813,endColumn=87,title=Pyrefly bad-argument-type::Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.perspective`
+ ::error file=torchvision/transforms/transforms.py,line=813,col=83,endLine=813,endColumn=87,title=Pyrefly bad-argument-type::Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.perspective`
- ::error file=torchvision/transforms/transforms.py,line=1380,col=83,endLine=1380,endColumn=87,title=Pyrefly bad-argument-type::Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.rotate`
+ ::error file=torchvision/transforms/transforms.py,line=1380,col=83,endLine=1380,endColumn=87,title=Pyrefly bad-argument-type::Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.rotate`
- ::error file=torchvision/transforms/transforms.py,line=1537,col=75,endLine=1537,endColumn=79,title=Pyrefly bad-argument-type::Argument `Literal[0] | Number | Sequence[Unknown] | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.affine`
+ ::error file=torchvision/transforms/transforms.py,line=1537,col=75,endLine=1537,endColumn=79,title=Pyrefly bad-argument-type::Argument `Number | Sequence[Unknown] | int | list[float]` is not assignable to parameter `fill` with type `list[float] | None` in function `torchvision.transforms.functional.affine`
pycryptodome (https://github.com/Legrandin/pycryptodome)
- ERROR lib/Crypto/Cipher/ChaCha20.py:140:22-34: `tuple[Literal['encrypt']]` is not assignable to attribute `_next` with type `tuple[Literal['encrypt'], Literal['decrypt']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20.py:140:22-34: `tuple[Literal['encrypt']]` is not assignable to attribute `_next` with type `tuple[str, str]` [bad-assignment]
- ERROR lib/Crypto/Cipher/ChaCha20.py:186:22-34: `tuple[Literal['decrypt']]` is not assignable to attribute `_next` with type `tuple[Literal['encrypt'], Literal['decrypt']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20.py:186:22-34: `tuple[Literal['decrypt']]` is not assignable to attribute `_next` with type `tuple[str, str]` [bad-assignment]
- ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:127:22-43: `tuple[Literal['encrypt'], Literal['digest']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:127:22-43: `tuple[Literal['encrypt'], Literal['digest']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]` [bad-assignment]
- ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:156:22-43: `tuple[Literal['decrypt'], Literal['verify']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:156:22-43: `tuple[Literal['decrypt'], Literal['verify']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]` [bad-assignment]
- ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:192:22-33: `tuple[Literal['digest']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:192:22-33: `tuple[Literal['digest']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]` [bad-assignment]
- ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:222:22-33: `tuple[Literal['verify']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]` [bad-assignment]
+ ERROR lib/Crypto/Cipher/ChaCha20_Poly1305.py:222:22-33: `tuple[Literal['verify']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]` [bad-assignment]
- ::error file=lib/Crypto/Cipher/ChaCha20.py,line=140,col=22,endLine=140,endColumn=34,title=Pyrefly bad-assignment::`tuple[Literal['encrypt']]` is not assignable to attribute `_next` with type `tuple[Literal['encrypt'], Literal['decrypt']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20.py,line=140,col=22,endLine=140,endColumn=34,title=Pyrefly bad-assignment::`tuple[Literal['encrypt']]` is not assignable to attribute `_next` with type `tuple[str, str]`
- ::error file=lib/Crypto/Cipher/ChaCha20.py,line=186,col=22,endLine=186,endColumn=34,title=Pyrefly bad-assignment::`tuple[Literal['decrypt']]` is not assignable to attribute `_next` with type `tuple[Literal['encrypt'], Literal['decrypt']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20.py,line=186,col=22,endLine=186,endColumn=34,title=Pyrefly bad-assignment::`tuple[Literal['decrypt']]` is not assignable to attribute `_next` with type `tuple[str, str]`
- ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=127,col=22,endLine=127,endColumn=43,title=Pyrefly bad-assignment::`tuple[Literal['encrypt'], Literal['digest']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=127,col=22,endLine=127,endColumn=43,title=Pyrefly bad-assignment::`tuple[Literal['encrypt'], Literal['digest']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]`
- ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=156,col=22,endLine=156,endColumn=43,title=Pyrefly bad-assignment::`tuple[Literal['decrypt'], Literal['verify']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=156,col=22,endLine=156,endColumn=43,title=Pyrefly bad-assignment::`tuple[Literal['decrypt'], Literal['verify']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]`
- ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=192,col=22,endLine=192,endColumn=33,title=Pyrefly bad-assignment::`tuple[Literal['digest']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=192,col=22,endLine=192,endColumn=33,title=Pyrefly bad-assignment::`tuple[Literal['digest']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]`
- ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=222,col=22,endLine=222,endColumn=33,title=Pyrefly bad-assignment::`tuple[Literal['verify']]` is not assignable to attribute `_next` with type `tuple[Literal['update'], Literal['encrypt'], Literal['decrypt'], Literal['digest'], Literal['verify']]`
+ ::error file=lib/Crypto/Cipher/ChaCha20_Poly1305.py,line=222,col=22,endLine=222,endColumn=33,title=Pyrefly bad-assignment::`tuple[Literal['verify']]` is not assignable to attribute `_next` with type `tuple[str, str, str, str, str]`
setuptools (https://github.com/pypa/setuptools)
- ERROR setuptools/_distutils/command/build_ext.py:328:21-33: Argument `Literal[0, 1] | bool` is not assignable to parameter `verbose` with type `bool` in function `setuptools._distutils.compilers.C.base.new_compiler` [bad-argument-type]
+ ERROR setuptools/_distutils/command/build_ext.py:328:21-33: Argument `bool | int` is not assignable to parameter `verbose` with type `bool` in function `setuptools._distutils.compilers.C.base.new_compiler` [bad-argument-type]
- ERROR setuptools/_distutils/command/install.py:488:40-75: No matching overload found for function `posixpath.join` called with arguments: (str | None, Literal[''] | Unknown) [no-matching-overload]
+ ERROR setuptools/_distutils/command/install.py:488:40-75: No matching overload found for function `posixpath.join` called with arguments: (str | None, str | Unknown) [no-matching-overload]
- ERROR setuptools/_distutils/command/install_lib.py:153:25-37: Argument `Literal[0, 1] | bool` is not assignable to parameter `verbose` with type `bool` in function `setuptools._distutils.util.byte_compile` [bad-argument-type]
+ ERROR setuptools/_distutils/command/install_lib.py:153:25-37: Argument `bool | int` is not assignable to parameter `verbose` with type `bool` in function `setuptools._distutils.util.byte_compile` [bad-argument-type]
+ ERROR setuptools/_vendor/platformdirs/windows.py:49:28-43: No matching overload found for function `posixpath.join` called with arguments: (str, *list[bool | str]) [no-matching-overload]
... (truncated 47 lines) ...``` |
rchen152
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Looking at the mypy_primer output, I suspect this PR is running into a pre-existing bug involving over-eager literal promotion when type annotations are inherited, but I'll look into patching that internally.
|
Sorry this is taking so long! The mypy_primer false positives are turning out to be more difficult than expected to address. |
grievejia
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review automatically exported from Phabricator review in Meta.
Summary: Checks a literal's style in `Type::promote_literals` and only promotes literals with style `Implicit`, leaving literals with style `Explicit` unchanged. This fixes a false positive involving attribute types being unexpectedly promoted if they're not directly annotated. This false positive would otherwise occur much more frequently after #1996, which causes us to start promoting things like unions of literals. As a pleasant surprise, we also get a little conformance bump. Context: this stack adds a `style` field to literals to track whether they are implicit (inferred) or explicit (annotated) and avoids promoting explicit literals. Reviewed By: grievejia Differential Revision: D90563369 fbshipit-source-id: 99e77a1b6ce94b24ae444509dd7db4364542e31f
Summary
Fix by promoting nested tuple element literals for unannotated method-initialized attributes
Fixes #1494
Test Plan
cargo test -p pyrefly test_unannotated_attribute_tuple_literal_promotion